package yl.hs.bmipfull.daos.finance;

import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import yl.hs.bmipfull.daos.BaseDao;
import yl.hs.bmipfull.pojo.finance.ShipSettleDetailEntity;
import yl.hs.bmipfull.pojo.finance.ShipSettleTemp;
import yl.hs.bmipfull.pojo.production.ProductShipOrderEntity;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * IShipSettleDetailDao 发货结算单明细数据操作接口
 * @category 财务管理——发货结算明细
 * @author 谢景广
 * @date 2021-12-29
 */
@Repository
public interface IShipSettleDetailDao extends BaseDao<ShipSettleDetailEntity> {
    /**
     * 根据结算单编号删除结算单明细
     * @param settleSN 结算单编号
     * @return 删除结果
     */
    Integer deleteBySettleSN(@Param("settleSN") String settleSN);

    /**
     * 根据结算单编号获取结算单明细信息
     * @param settleSN 结算单编号
     * @return 结算单明细集合
     */
    List<ShipSettleDetailEntity> queryDetailBySettleSN(@Param("settleSN") String settleSN);

    /**
     * 根据结算数据搜索条件获取结算单明细信息
     * @param contractSN 合同编号
     * @param productCateSN 产品类别编号
     * @param start 开始日期
     * @param end 结束日期
     * @return 临时结算明细集合
     */
    List<ShipSettleTemp> queryTempDetails(@Param("contractSN") String contractSN,
                                          @Param("productCateSN") String productCateSN,
                                          @Param("start") Date start,
                                          @Param("end") Date end);

    List<ShipSettleTemp> queryTempOrdersDetails(String contractSN, String productCateSN, Date start, Date end);
}
